要解决的问题 在开始本文的内容之前,我们需要先在脑海里记住以下几个问题,并带着这些问题来阅读本文: 1、Sysmon日志中,Event ID 11相关的事件日志总共有多少? Sysmon 背景 Sysmon日志是由Microsoft系统监视器(Sysmon)生成的事件日志,它们提供有关Windows上的系统级操作的详细信息,并记录进程启动、网络连接、文件和注册表修改、驱动程序和服务活动以及 WMI操作等活动,通过分析Sysmon日志,安全专家可以检测潜在风险、发现异常并响应安全事件,以增强整体系统监控和安全性。 Sysmon日志在这项工作中发挥着至关重要的作用,它提供了有价值的见解,并使组织能够加强其安全态势。 此时,还可以使用findstr(类似于Linux中的grep)来获取包含4292的日志条目,而4292则是之前进程分析中Firefox的进程ID。
sysmon的几个特点分享如下: 1、sysmon会跑在某个vCPU上,我电脑是8核16线程(vCPU0~vCPU15),看到总有一个vCPU的利用率比较高,而且不固定,但基本是在vCPU12~vCPU15 source_id=1001 2、机器空载的时候,sysmon也在不断监测系统并记录日志,因此有持续不断的IO 参考这个录屏文件 3、由于sysmon频繁写磁盘,可能会对ssd寿命有一定影响 可以通过命令停止 sysmon的日志 停止sysmon日志:wevtutil set-log "Microsoft-Windows-Sysmon/Operational" /enabled:false 启用sysmon日志 :wevtutil set-log "Microsoft-Windows-Sysmon/Operational" /enabled:true 创建开机计划任务,停止sysmon的日志 schtasks 的命令 cmd /c "C:\Windows\sysmon.exe -u force" 2>&1 > $null 卸载sysmon,iOA又会把它装回去,iOA依赖sysmon的监测来实现功能
Sysmon+Nxlog+GrayLog实现Windows服务器安全日志监控 Sysmon系统监视器是一种 Windows 系统服务和设备驱动程序,一旦安装在系统上,系统重启后,它仍驻留在系统重启中, 通过使用 Windows 事件收集或 SIEM 代理收集它生成的事件并随后分析这些事件,可以识别恶意或异常活动,并了解攻击者和恶意软件如何在你的网络上运行。 请注意 ,Sysmon 不提供其生成的事件的分析,也不尝试保护或隐藏自身免受攻击者的攻击。 => sysmonout </Route> (图片可点击放大查看) 3、启动nxlog服务 (图片可点击放大查看) 4、GrayLog配置Input 这里为了区别系统日志与Sysmon日志 日志 例如命令行ping www.baidu.com (图片可点击放大查看) 可以查到DNS查询日志和命令行进程日志 (图片可点击放大查看) (图片可点击放大查看)
前情提要: 微软轻量级系统监控工具sysmon内核实现原理 微软轻量级监控工具sysmon原理与实现 前两次我们分别讲了sysmon的ring3与ring0的实现原理,但是当初使用的版本的是8.X的版本 ,最新的版本10.X的sysmon功能有所增加,经过分析代码上也有变化。 BYTE OutBuffer[4002] = { 0 }; ULONG BytesReturned = 0; if ( SUCCEEDED( DeviceIoControl( hObjectDrv, SYSMON_REQUEST_PROCESS_INFO 今天的续篇就此结束,sysmon还是可以挖掘很多很实用得东西,比如每个事件里得ProcessGuid 并不是随机生成得,而是有一定算法得,具体读者可以自行研究发现。 ?
前言 Sysmon是容易下载安装使用的日志审计应用,每个人都可以查看sysmon记录的内容。这些日志被EDR获取的话,能够在这些产品中看到一连串“有趣的东西”。 正文 当我们执行 sysmon.exe -t -i yoursysmonconfig.xml 命令时,突然出现了以下重要的错误信息 ? 这是因为我们提供给sysmon的命令过长,sysmon不得不去进行删减操作。 通过测试发现,sysmon可以显示最多0x2000个字符。也就是说,我们可以在sysmon截断的时候做一些有意义的事情。 当我们执行 powershell <0x2000 spaces> calc 命令时,我们可以看到sysmon只记录到了我执行了powershell命令 ? 但实际上,我最终执行的确是calc。 ? 后续 参考:http://www.hexacorn.com/blog/2018/06/29/sysmon-doing-lines-part-3/
Sysmon和Windows事件日志都是防御者中极为强大的工具。它们非常灵活的配置使他们可以深入了解设备上的活动,从而使检测攻击者的过程变得更加容易。 启动Ghidra并启动sysmon64.exe,我们可以看到它使用ReportEventWWindows API调用来报告事件。 ? 如果您在下面看,您将看到我能够启动Powershell提示而不会触发任何sysmon事件。 因此,现在我们可以使用来开始编写PoC代码了。 启用挂钩(禁用所有日志记录) ? 获取挂钩的状态 ? 禁用挂钩(启用所有日志记录) ? *参考来源:dylan,FB小编周大涛编译,转载请注明来自FreeBuf.COM
四、Windows日志实例分析 在Windows日志中记录了很多操作事件,为了方便用户对它们的管理,每种类型的事件都赋予了一个惟一的编号,这就是事件ID。 1. 五、WEB日志文件分析 以下列日志记录为例,进行分析: #Software: Microsoft Internet Information Services 6.0 #Version: 1.0 sxjyzx/2.gif - 80 - 192.168.99.236 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1) 200 0 0 分析 表示程序有错; sc-substatus 服务端传送到客户端的字节大小; cs–win32-statu客户端传送到服务端的字节大小; 1**:请求收到,继续处理 2**:操作成功收到,分析 有时是为了防止发生系统过载 503——服务器过载或暂停维修 504——关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长 505——服务器不支持或拒绝支请求头中指定的HTTP版本 FTP日志分析
sysmon 默默无闻的后台监控 golang 里面里面有一个默默无闻的工作者在后台跑着,它的名字叫 sysmon ,你可能在某个地方见到过它。 启动 首先让我们来看看 sysmon 是谁启动的。 // The main goroutine. func main() { ........... if GOARCH ! // register sysmon is not ready for the world to be // stopped. syscall_runtime_doAllThreadsSyscall, sysmon is // sufficiently up to participate in fixups. 不需要 P 只需要 M 即可执行,能休息就休息,没工作时就慢下来,sysmon 主要做了以下几样工作: 检查死锁 检查网络轮训 检查抢占 检查 gc 总之其实 sysmon 其实在背后承担了一些检查的工作
1、提交当天访问次数最多的IP,即黑客IP 已知中间件是Linux上的Apache,常见日志路径一般是: /var/log/apache/ /var/log/apache2/ /var/log/httpd / 这里定位到日志路径是/var/log/apache2。 通过命令ls -lah根据文件大小,判断日志文件是access.log.1,因为access.log的大小是0。
,该线程独立于调度器,不需要跟 p 关联即可运行 newm(sysmon, nil)}) sysmon 函数不依赖 P 直接执行,通过 newm 函数创建一个工作线程: func newm(fn 但在这里,fn 就是最开始在 runtime.main 里设置的 sysmon 函数,因此这里会执行 sysmon,而它又是一个无限循环,永不返回。 接下来,我们就来看 sysmon 函数到底做了什么? sysmon 执行一个无限循环,一开始每次循环休眠 20us,之后(1 ms 后)每次休眠时间倍增,最终每一轮都会休眠 10ms。 FUTEX_WAKE, cnt, nil, nil, 0) if ret >= 0 { return } // …………………… } futex 由汇编语言实现,前面已经分析过 接下来我们就来分析当 P 处于 _Prunning 状态的情况。
GC 日志分析 首先,如果需要查看 GC 日志,需要在 jvm 参数中加入如下参数 -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:d:/GClogs /tomcat6-gc.log GC 日志 2016-11-23T11:01:27.738+0800: 0.150: [GC [PSYoungGen: 331K->288K(5952K)] 331K- PSPermGen: 3060K->3060K(21248K)], 0.0052429 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] Young GC 日志 image Full GC 日志分析 ? image JVM 参数设置 jvm 参数对应堆内存设置 ? image 比例设置 ? 32M) -XX:MaxGCPauseMillis=500 :设置最大暂停时间(毫秒) -XX:+DisableExplicitGC:禁止显示GC的调用(即禁止开发者的 System.gc();) GC日志
在nginx.conf中定义的日志格式如下: http { ... http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; ... } 日志文件如下 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" "-" nginx没有命令直接将日志按天分割 access-api-$(date -d "yesterday" +"%Y%m%d").log cron: 0 0 * * * /mydata/nginx/nginx.log.sh 从nginx服务器将日志数据传输到日志服务器 ("log_table", engine, if_exists="append", index=False) except Exception as e: print(e) 日志结构化写入数据库后
C、如何筛选 如果想要查看账户登录事件,在右边点击筛选当前日志,在事件ID填入4624和4625,4624 登录成功 4625 登录失败 D、事件ID及常见场景 对于Windows事件日志分析,不同的 net user USER PASSWORD /add net localgroup administrators USER /add 0x02 日志分析工具 A、Log Parser Log Parser(是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件、XML 文件、CSV(逗号分隔符)文件,以及操作系统的事件日志、注册表、文件系统、Active Directory 常见登录类型日志分析 https://blog.csdn.net/zhulinu/article/details/52747984 Windows 7和Windows Server 2008 R2 安全事件的说明 /www.jb51.net/hack/384430.html https://wenku.baidu.com/view/e86ad976e009581b6bd9ebcf.html Powershell日志分析
AWStats日志分析系统介绍 1.AWStats日志分析系统 (1)Peri语言开发的一款开源日志分析系统 (2)可用来分析Apache、Samba、 Vsftpd、 IIS等服务 器的访问日志 (3 )信息结合crond等计划任务服务,可对日志内容定期进行分析 部署AWStats日志分析系统 1.安装AWStats软件包 2.为要统计的站点建立配置文件 3.修改站点统计配置文件 4.执行日志分析,并设置 crontab计划任务 访问AWStats分析系统 1.查看统计页面 2.设置网页自动跳转,方便访问 具体操作: 1.安装DNS和HTTP服务软件包 [root@localhost ~]# yum install # systemctl start httpd 4.Windows 10配置 (1)在win10主机上更改下DNS地址 (2)在浏览器上访问域名,保证能够进行对Apache访问 5.此时可以查看下日志文件
0x03 事件日志分析 对于Windows事件日志分析,不同的EVENT ID代表了不同的意义,摘录一些常见的安全事件的说明: 事件ID 说明 4624 登录成功 4625 登录失败 4634 注销成功 0x04 日志分析工具 Log Parser Log Parser(是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件、XML 文件、CSV(逗号分隔符)文件,以及操作系统的事件日志 它可以像使用 SQL 语句一样查询分析这些数据,甚至可以把分析结果以各种图表的形式展现出来。 基本查询结构 Logparser.exe –i:EVT –o:DATAGRID "SELECT * FROM c:\xx.evtx" 使用Log Parser分析日志 1、查询登录成功的事件 登录成功的所有事件 Event Log Explorer Event Log Explorer是一款非常好用的Windows日志分析工具。
日志采用默认的格式产生,一直也没太关注, 这次正好藉着博客改版,尝试分析下近期的日志,以对网站状态有个全局的了解。 网上有许多日志分析采用的是简单粗暴的bash脚本(awk)来进行处理, 好处是分析速度快,但坏处是拓展性不强,如果未来想要做图表或者在网页前端展示就比较麻烦了。 扯得有点远了,还是继续分析日志吧。 错误日志分析 错误日志也叫应用程序日志,主要用于方便开发者或者运维在出问题的时候排查原因。 分析 错误日志相对于访问日志要少(废话),但从中也能找到对我们有价值的信息。
常见的日志分析问题及解决方案2.1 日志文件格式不统一问题:日志文件格式不统一,导致难以进行统一分析。解决方案:使用日志解析工具将日志文件转换为统一格式。 :日志文件内容复杂,难以直接分析。 解决方案:使用日志分析工具提取关键信息。 解决方案:使用日志聚合和分析工具进行大规模分析。 4.2 优化分析建议:根据系统的变化和新的日志需求,及时优化日志分析工具和配置。
当前很难在网络中探测攻击者横向渗透,其中原因有很难获取必要的日志和区别正常与恶意行为。本篇文章介绍通过部署Sysmon并将日志发送到SIEM来探测横向渗透。 工具: Sysmon + Splunk light 安装配置: sysmon -i -n ? 本地查看sysmon事件日志,打开事件查看器 - Microsoft - Windows - Sysmon - Operational 如下图可以看到sysmon记录到powershell.exe进程创建 在splunk中查询当前主机的sysmon日志: sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" ? 然后通过分析当前的Windows事件日志,辨别进程的创建/终止,网络连接的建立/销毁来区别正常与异常的SMB会话。 探测攻击者使用PowerShell进行横向渗透。
大家都知道,主机日志格式过于杂乱对于日后的分析造成了不小的困扰,而splunk的轻便型、便携性、易安装性造就了其是一个日志分析的好帮手。 但是有一点,windows默认的自带日志除了登录日志对我们有点用处以外,其他的貌似用户不大,对于分析人员来说,可能更想看到的是哪个文件执行了具体的历史命令,那我们这里就要介绍以windows记录详细日志的 sysmon为例,把sysmon日志也同步过来。 首先我们在服务端上安装好sysmon 装好以后会在日志目录在出现sysmon日志文件 ? 我们可以先打开sysmon日志看下,发现日志比windows自带日志详细很多 ? = true 修改完以后最好重启一下,然后我们看下客户端,发现能够看到sysmon的日志也同步过来了,能够利用各种搜索语句便于我们后续的分析 ?
,并部署Sysmon作为Windows日志的补充。 部署Splunk日志转发工具,转发Windows event_log和Sysmon_log至Soc平台; 2、部署Ubuntu18.04,并安装Splunk Free,作为Soc平台,收集域内主机日志, 并对模拟攻击行为产生的数据进行分析。 测试命令执行后,数据采集器将会采集windows安全日志/Sysmon日志,并发送至SOC平台。 基于这套小型仿真威胁狩猎平台,你还可以做更多的事情,值得你去发掘,比如利用Sysmon、Audit日志等,去做更有意义的事情。